Today, computer aided engineering (CAE) has been used for supporting engineers in tasks such as analysis, simulation, design, manufacture, etc. In conventional engineering design procedures, CAE analysis (e.g., finite element analysis (FEA), finite difference analysis, computational fluid dynamics (CFD) analysis, modal analysis for reducing noise-vibration-harshness (NVH), etc.) has been employed to evaluate responses (e.g., stresses, displacements, etc.). Generally, a body or structure (i.e., engineering product) is represented by an assemblage of subdivisions called elements (e.g., finite elements) that are interconnected at joints or nodes in the computer aided engineering analysis. Finite elements and interconnected nodes are collectively referred to as a grid model.
In order to perform design optimization, automated computer-implemented procedures that incorporate CAE have also become ever popular. For conceptual designs, topology optimization is a very popular engineering optimization methods. Topology optimization requires complex interactions among loading and boundary conditions, material models, geometry and grid model (e.g., finite element mesh) of the design components. These interactions at times can destabilize engineering simulation (i.e., computer aided engineering analysis), particularly in the presence of non-linear structural behaviors of the engineer product to be optimized. One of the problems is that significant sudden changes of material distribution could cause numerical instability in topology optimization. To reduce this instability, local averaging of the design variables is used for protecting against sudden variations in the material distribution and/or redistribution.
In general, local averaging is conducted by averaging results of a group of neighbor elements within a neighborhood of an element. Identifying neighbors of each element in a large complex grid model could be a time consuming task even with the state-of-the-art multi-processor computer system. Traditionally, neighbors of an element are identified by comparing every nodal point of a pair of elements to determine whether there is a shared node, or by computing the distance of the two elements to determine whether they are within a threshold. Either of these prior art approaches requires a significant amount of computations. For example, comparing each node of one element against every node of another element requires number of comparison operations in the order of number of nodes squared, while computing spatial distance of two elements requires a computation of square root for each pair. When a grid model containing large number of elements (e.g., one million or more), the prior art approaches of locating neighbors become prohibitively expensive both in terms of time and cost (i.e., takes sometimes hours). Therefore, it would be desirable to have improved neighborhood determination methods and systems in computer aided engineering analysis.